package com.bestcem.xm.cjm.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bestcem.xm.component.mybatis.base.BaseEntity2;
import com.bestcem.xm.component.mybatis.format.String2JacksonSerializer;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "ds_cjm_clientjourney")
public class CjmClientjourney extends BaseEntity2 {
    @TableId(value = "id")
    private String id;

    /**
     * 组织ID
     */
    @TableField(value = "orgID")
    @JsonProperty("orgID")
    @JSONField(name = "orgID")
    private String orgid;

    /**
     * 用户ID
     */
    @TableField(value = "user_id")
    @JsonProperty("user_id")
    @JSONField(name = "user_id")
    private String userId;

    /**
     * 名称
     */
    @TableField(value = "`name`")
    private String name;

    /**
     * 显示名称
     */
    @TableField(value = "display_name")
    @JsonProperty("display_name")
    @JSONField(name = "display_name")
    private String displayName;

    /**
     * 描述
     */
    @TableField(value = "description")
    private String description;

    /**
     * 关联仪表盘id
     */
    @TableField(value = "dashboard_data")
    @JsonProperty("dashboard_data")
    @JSONField(name = "dashboard_data")
    @JsonSerialize(using = String2JacksonSerializer.class)
    private String dashboardData;

    /**
     * 旅程数据
     */
    @TableField(value = "`data`")
    @JsonSerialize(using = String2JacksonSerializer.class)
    private String data;

    /**
     * 行id列表
     */
    @TableField(value = "`rows`")
    @JsonSerialize(using = String2JacksonSerializer.class)
    private String rows;

    /**
     * 列id列表
     */
    @TableField(value = "`columns`")
    @JsonSerialize(using = String2JacksonSerializer.class)
    private String columns;

    /**
     * 编辑状态
     */
    @TableField(value = "`status`")
    private Integer status;

    /**
     * 版本号
     */
    @TableField(value = "version")
    private Integer version;

    /**
     * 父节点id
     */
    @TableField(value = "parent_id")
    @JSONField(name = "parent_id")
    @JsonProperty("parent_id")
    private String parentId;

    /**
     * 是否从sample拷贝
     */
    @TableField(value = "is_copy_demo")
    @JsonProperty("is_copy_demo")
    @JSONField(name = "is_copy_demo")
    private Boolean isCopyDemo;
}